1. Field of the Invention
This invention relates to a processor system arranged to optimise one or more signals.
2. Related Art
In many industrial applications, one or more input quantities (for example raw materials or signal values) are combined according to some predetermined process to produce an output quantity (e.g. a chemical composition, or a processed signal).
In general, the output is therefore a function of the input. In some cases, the function will be known, whereas in others it will not be known. In some cases, the function will linear, whereas in others it will be non linear. In some cases, the function will be well behaved, whereas in others it will include discontinuities.
For many types of function, an optimum output value (e.g. chemical yield, chemical composition, bit error rate of a process signal, or throughput capacity over a telecommunications network) is possible, corresponding to a predetermined optimum input value or, where there is more than one input, to a set of such input values, which may be considered to define an input vector.
In many types of function, there may be more than one such optimum value (which may either be a maximum or a minimum). Generally, one of these is the true optimum value (the global optimum value) and the others are local optima. It is generally desired to find the global optimum value, rather than local optima.
For simple analytical functions, such as a cubic function, it is possible to find the optima (in this case, for example, minima) by differentiating the function, to locate points of inflection; double differentiating the function, to determine which are minima; determining the value of the function at each such minimum; and selecting the lowest. However, this approach fails where the function is either unknown or ill-behaved, or both.
Two general numerical approaches which can deal with functions of these types are known. and will be referred to as xe2x80x9cglobalxe2x80x9d approaches and xe2x80x9clocalxe2x80x9d approaches.
Global approaches include xe2x80x9cbrute forcexe2x80x9d search techniques; in such techniques, the function is evaluated at a large number of possible function values distributed over the range of possible input values, and the minimum is found directly.
Such an approach is possible for functions which depend on a small number of input variables, over a small range of those variables. However, for a large number of variables and/or a large variable range, the number of occasions on which the function must be solved (which is computationally intensive and time consuming) becomes very large, rendering such approaches slow and unsuitable for, for example, real time signal processing or network control applications.
On the other hand, xe2x80x9clocalxe2x80x9d techniques start with one input vector position and xe2x80x9cmovexe2x80x9d to a new vector position in a direction which optimises the function. Such techniques include Genetic Algorithms and Simulated Annealing processes. For example, where the optimum sought is a minimum, the search process may consist of determining the function value at input values spaced at either side of the starting point, determining whether either generates a function value lower than the starting function value, and selecting that which does so; and then repeating the process.
It will be seen that a process of this kind will continue to move the currently selected input value until a local minimum of the function value is found. However, with local search techniques of this kind, there is no guarantee that the global optimum will be found.
One known technique which attempts to reduce this problem within a local search scheme is known as xe2x80x9cDynamic Hill Climbingxe2x80x9d, as described in xe2x80x9cDynamic Hill Climbingxe2x80x9d, de la Maza and Yurate, AI Expert, March 1994 at pages 26-31.
In this scheme, each optimisation run is provided in two loops; an inner loop and an outer loop. The inner loop comprises a local search, arranged to find a local minimum. Once the local minimum has been found, the technique reverts to the outer loop, which determines another starting position (i.e. input value vector) and re-executes the inner loop. This process is repeated until most of the range of input values have been reviewed.
This technique was found useful for performing a co-ordinate change transformation for matching two sets of image data derived from computer topography or magnetic resonance imaging.
The present inventors have concluded that the Dynamic Hill Climbing technique, together with others, does not perform well on certain types of function, in which it does not find the global optimum within a reasonable number of iterations.
An aim of the present invention is to improve on the performance of such algorithms, at least for certain types of function. Accordingly, the invention finds application in many industrial fields; for example, in real time signal processing, or industrial process control. Particular embodiments of the invention comprise a multi-pulse linear predictive coder, an adaptive filter useful, for example, as an echo cancellor; an image transform generator (e.g. for matching two images or for performing a motion vector search); a chemical plant controller; a crystal structure modeller; and a telecommunications network management unit.
Accordingly, the present invention provides, in one aspect a processor system for optimising comprising: means for inputting data relating to a function of a plurality of input signals for which it is desired to find output values which give an optimum value of said function; means for finding said output values by performing a plurality of cycles to reach a convergence, each of which cycles comprises: providing an old current value of the or each input signal; selecting a test value of one or more said input signals; generating said function from said selected test value or values; selecting a new said current value in dependence upon the relationship between the value of the function for the test value and the value of the function for the old current value, said test values including values close to said old current values so as to move said input signal towards a local convergence; and means for outputting said output values; characterised in that said finding means is adapted to perform said cycles such that in some but not all of said cycles, said test value of one or more said input signals is selected to lie remotely within the range of said input signal to said old current value, so as to move said input signal towards a global convergence prior to completion of said local convergence.